#ifndef RENDERER_H
#define RENDERER_H
#pragma once

#include "OpenGL/vertexarray.h"
#include "OpenGL/indexbuffer.h"
#include "OpenGL/shader.h"
#include "OpenGL/texture.h"

#include <vector>
#include <QString>
class Renderer
{
public:
    void Clear() const;
    void DrawPoint(const VertexArray* vao, const IndexBuffer* ibo, Shader& pointShader);
    void DrawLine(const VertexArray* vao, const IndexBuffer* ibo, Shader& lineShader);
    void DrawPolygon(const VertexArray* vao, const IndexBuffer* ibo, Shader& polygonShader);
    void DrawPolygonBorder(const VertexArray* vao, Shader& borderShader);
    void DrawTexture(const VertexArray* vao, const IndexBuffer* ibo,
        const std::vector<Texture*>& texs, Shader& textureShader);
    void setTheme(QString themeStr);
private:
    QString theme="light";
};
#endif // RENDERER_H
